5829
11357
Geschlossen. Diese Frage entspricht nicht den Richtlinien für Stapelüberlauf. Derzeit werden keine Antworten akzeptiert.
Möchten Sie diese Frage verbessern? Aktualisieren Sie die Frage so, dass sie für den Stapelüberlauf aktuell ist.
Vor 4 Jahren geschlossen.
Verbessere diese Frage
Ich erstelle eine Shiny-App, die mehrere von einem Benutzer ausgewählte Textdateien verarbeitet.
Die Ausgabe ist ein riesiger Datenrahmen mit Millionen von Zeilen und Dutzenden von Spalten.
Ich bin jetzt daran interessiert, einem Benutzer zu ermöglichen, Zeilen interaktiv zu filtern, Spalten auszuwählen und Spalten zusammenzufassen (indem er aus einer Liste von Funktionen wie Mittelwert, SD, Max, Min, Summe usw. auswählt). Das Ergebnis wäre ein kleinerer Datenrahmen, in dem die Daten pro Benutzerauswahl zusammengefasst werden. Grundsätzlich muss eine GUI erstellt werden, die eine grundlegende Funktionalität der dplyr-Bibliothek implementiert.
Im Allgemeinen weiß ich, wie man das macht, indem man manuell eine Reihe von GUI-Elementen erstellt und sie mit einer Reihe von dplyr-Befehlen in eine Serverfunktion einspeist. Da dies eine ziemlich standardmäßige Funktionalität zu sein scheint (GUI, die einen Datenrahmen filtert und zusammenfasst), frage ich mich, ob es etwas "von der Stange" gibt, das ich entweder wie besehen oder als Ausgangspunkt verwenden kann, bevor ich es von Grund auf neu erstelle . 
Ich weiß, dass Sie gesagt haben, dass rpivotTable nicht ganz das ist, wonach Sie suchen, aber ich denke, es kann so konfiguriert werden, dass es einen Teil des schweren Hebens erledigt.
Hier ist ein Beispiel (mit rpivotTable für die Manipulation, DT zum Anzeigen des data.frame, rvest zum Parsen des innerHTML aus dem DOM, möglicherweise gibt es ein besseres Datenformat, um das Tabellenobjekt von der Clientseite zu übergeben, dies ist jedoch ein Proof of Concept ):
ui.R.
Bibliothek (glänzend)
Bibliothek (DT)
Bibliothek (rpivotTable)
FullPage <- fluidPage (
DT :: dataTableOutput ('aSummaryTable'),
rpivotTableOutput ('ERGEBNISSE')
)
Volle Seite
server.R:
Bibliothek (glänzend)
Bibliothek (rpivotTable)
Bibliothek (DT)
Bibliothek (rvest)
Funktion (Eingabe, Ausgabe, Sitzung) {
# Machen Sie einige Beispieldaten
qbdata <- reaktiv ({
expand.grid (BRIEFE, 1: 3)
})
# Reinigen Sie den HTML-Code und speichern Sie ihn als reaktiv
summarydf <- eventReactive (Eingabe von $ myData, {
Geben Sie $ myData%>% ein
read_html%>%
html_table (fill = TRUE)%>%
# Es stellt sich heraus, dass eine rpivotTable zwei Tabellen enthält, wir wollen die zweite
. [[2]]
})
# show df als DT :: datatable
Ausgabe $ aSummaryTable <- DT :: renderDataTable ({
datatable (summarydf (), rownames = FALSE)
})
# Wenn die Konfiguration aktualisiert wird, rufen Sie mit dem Inhalt der Tabelle zurück
Ausgabe $ RESULTS <- renderRpivotTable ({
rpivotTable (
qbdata (),
onRefresh =
htmlwidgets :: JS ("function (config) {
Shiny.onInputChange ('myData', document.getElementById ('RESULTS'). InnerHTML);
} ")
)
})
}}
|
Nicht die Antwort, die Sie suchen? Durchsuchen Sie andere Fragen mit dem Tag r dplyr shiny oder stellen Sie Ihre eigene Frage.